import pandas as pd
import os
# 获取项目路径
def get_obj_path():
    return os.path.dirname(__file__).split('common')[0]

# 读取Excel文件，并且将数据转为列表，列表的元素是字典，字典的键值和excel表的列值一样
def read_excel(file_path):
    df = pd.read_excel(get_obj_path() + file_path)
    # 替换Excel表格内的空单元格，否则在下一步处理中将会报错
    df.fillna("", inplace=True)
    df_list = []
    for i in df.index.values:
        # loc为按列名索引 iloc 为按位置索引，使用的是 [[行号], [列名]]
        df_line = df.loc[i, [column for column in df.columns.values]].to_dict()
        # 字符串转为列表数字
        if 'body_px' in df.columns.values:
            df_line['body_px'] = str_to_lst(df_line['body_px'])
        if 'body_py' in df.columns.values:
            df_line['body_py'] = str_to_lst(df_line['body_py'])
        # 将每一行转换成字典后添加到列表
        df_list.append(df_line)
    return df_list

# 字符串转为列表数字
def str_to_lst(str):
    numbers = str.split()
    numbers = [int(x) for x in numbers]
    return numbers

if __name__ == '__main__':
    data = read_excel('test_cases/test_forward_head/_forward_head.xlsx')
    print(data)